package com.dragon.modules.yuegou.model.rbac;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 权限
 * 
 * @author liuwu
 *
 */
public class RbacPermission {

	/**
	 * 角色ID
	 */
	private final String roleId;

	/**
	 * 资源ID
	 */
	private final String resourceId;

	/**
	 * 是否授权所有资源<br>
	 * 资源组成了一个树形结构，当某个资源permitAll=true时，表示其叶子节点也一起被授权了
	 * @deprecated 暂时不考虑这个特性，因为实现方根本没有实现这个特性
	 */
	@Deprecated
	private final boolean permitAll = false;

	/**
	 * 创建一个授权记录
	 * 
	 * @param roleId     角色ID
	 * @param resourceId 资源ID
	 */
	@JsonCreator
	public RbacPermission(@JsonProperty("roleId") String roleId, @JsonProperty("resourceId") String resourceId) {
		super();
		this.roleId = roleId;
		this.resourceId = resourceId;
	}

	/**
	 * 获取角色ID
	 * 
	 * @return 角色ID
	 */
	public String getRoleId() {
		return roleId;
	}

	/**
	 * 获取资源ID
	 * 
	 * @return 资源ID
	 */
	public String getResourceId() {
		return resourceId;
	}

	/**
	 * 判断是否授权全部
	 * @return true表示授权了该资源及其子资源，false表示仅授权了改资源
	 * @deprecated 暂时不考虑这个特性，因为实现方根本没有实现这个特性
	 */
	@Deprecated
	@JsonIgnore
	public boolean isPermitAll() {
		return permitAll;
	}

}
